package com.ocp.macro.service;

import com.ocp.macro.entity.DealerAccount;
import com.ocp.macro.entity.UserInfoToken;

import java.util.List;

public interface DealerAccountService {
    /**
     * 判断用户输入的用户名是否存在
     * @param username 用户名
     * @param loginType 登录方式
     */
    String accountUsernameExists(String username, String loginType);

    /**
     * 获取当前登录用户的信息
     */
    String getLoginUserInfo(UserInfoToken userInfoToken);

    /**
     * 判断该经销商名是否存在
     * @param dealerName 经销商名称
     */
    String dealerNameIsExists(String dealerName);

    /**
     * 实现：孙历
     *请求将所选的 经销商子账号 进行 关联经销商信息
     * @param realNos
     * @param subAcctId
     * @return
     */
    String addDealerAccountListRel(List<String> realNos, Integer subAcctId);

    /**
     * 实现：孙历
     * 请求该总帐号下的所有子账号，根据dealerAccount封装的信息筛选
     * @param dealerAccount
     * @return 查询的子账号信息
     */
    String selectDealerSubAccountList(DealerAccount dealerAccount,UserInfoToken userInfoToken);

    /**
     * 实现：孙历
     * 请求新增经销商子账号
     * @param dealerAccount
     * @return 返回信息
     */
    String addDealerSubAccount(DealerAccount dealerAccount,UserInfoToken userInfoToken);

    /**
     * 实现：孙历
     * 批量请求删除所选的经销商子账号
     * 前端将所选的账号id生成一个数组封装到list
     * @param subaccount 封装账号id数组的对象
     */
    String dealerSubAccountDelete(List<Integer> subaccount);

    /**
     * 实现：孙历
     * 批量请求所选的 经销商子账号 进行 账号状态设置
     * 前端将所选的 账号id 封装成一个数组，赋值给list
     * 和传的status字段的值：0禁用，1启用
     */
    String dealerSubAccountState(Integer state,List<Integer> subaccount);

    /**
     * 实现：孙历
     * 经销商子账号进行信息修改请求
     * @param dealerAccount 新的子账号信息
     */
    String dealerSubAccountModify(DealerAccount dealerAccount);

    /**
     * 实现：孙历
     * 请求当前登录的账号所关联的经销商信息
     */
    String dealerAccountDistrList(UserInfoToken userInfoToken);

    /**
     *实现孙历
     * 重置经销商密码
     */
    String dealerAccountResetPwd(Integer[] subAcctId);
}
